# FROM 指定基础镜像
FROM mhart/alpine-node:latest

# LABEL 镜像标签
LABEL author="YanjinZhu" \
      email="yanjinzh6@gmail.com" \
      description="youzhe graphql server"

# 读取 docker-compose.yml 的 args 列表
# ARG port

# ENV 设置环境变量
ENV APP_DIR=/home \
    APP_PROT=4000

# WORKDIR 指定工作目录
WORKDIR $APP_DIR

# COPY 复制文件
COPY package.json yarn.lock $APP_DIR/

# RUN 运行命令
RUN yarn

# COPY 剩余的文件, 这样只要不修改 package.json 层就不会触发上面的 RUN 层
COPY . $APP_DIR

# 这里复制 prisma 的 config 文件
# COPY ../youzhe-config/.prisma/config.yml /root/.prisma/config.yml

# VOLUME 指定镜像内的目录为数据卷
# EXPOSE 设置监听端口
EXPOSE $APP_PROT

# 指定 --restart always 选项, Docker 守护进程 (docker daemon) 会重启容器, 使用 HEALTHCHECK  指令可以让 Docker 周期性的检查容器的健康状况, 如果一切正常的话返回0, 否则返回1
# HEALTHCHECK CMD curl --fail http://localhost:$APP_PORT || exit 1

# CMD 指定容器运行时的默认参数
CMD ["npm", "start"]